             package com.java.diagnostics.visualizer.gc.solarissupport.parser;
             
             import com.java.diagnostics.visualizer.data.SourceData;
             import com.java.diagnostics.visualizer.exceptions.GCAndMemoryVisualizerException;
             import com.java.diagnostics.visualizer.impl.factory.LogFactory;
             import com.java.diagnostics.visualizer.parser.vgc.VGCParser;
             import com.java.diagnostics.visualizer.properties.OutputProperties;
             import com.java.diagnostics.visualizer.sources.Source;
             import java.util.logging.Logger;
             
             public class SunVGCParser
               implements VGCParser
             {
               private final String className = getClass().getName();
               
               private static final Logger TRACE = LogFactory.getTrace(SunVGCParser.class);
               private static final String GC = "[GC";
               private static final String YOUNG_PAUSE = "GC pause (young)";
               
               public boolean isParseableSource(Source source)
                 throws GCAndMemoryVisualizerException
               {
                 TRACE.entering(this.className, "isParseableSource");
                 
                 boolean answer = (source.containsWithinReasonableDistanceOfStart("[GC")) && 
                   (!source.containsWithinReasonableDistanceOfStart("GC pause (young)"));
                 TRACE.exiting(this.className, "isParseableSource");
                 return answer;
               }
               
               public SourceData parse(Source source, OutputProperties properties)
                 throws GCAndMemoryVisualizerException
               {
                 TRACE.entering(this.className, "parse");
                 SourceData sourceData = new InstanceSunVGCParser().parse(source, 
                   properties);
                 
                 TRACE.exiting(this.className, "parse");
                 return sourceData;
               }
             }


